<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>数据代理</title>
</head>
<body>
    <script>
        // 给定两个对象person1, person2
        let person1 = {
            name: 'dilireba',
        }
        let person2 = {
            age: 18
        }

        // 现在来实现一下，person1可以调用person2中的属性，person2也可以调用到person1中的属性,
        // 在person1中可以修改person2的属性，在person2中也可以修改person1的属性。

        /***********************************************/ 
        Object.defineProperty(person1, 'age', {
            get() {
                return person2.age;
            },
            set(value) {
                person2.age = value;
            }
        })
        Object.defineProperty(person2, 'name', {
            get() {
                return person1.name;
            },
            set(value) {
                person1.name = value;
            }
        })

        // 互相获取对方属性
        console.log(person1.age); // 18
        console.log(person2.name); // dilireba

        // 互相修改对方属性
        person1.age = 20;
        console.log(person2.age); // 20

        person2.name = 'dili';
        console.log(person1.name); // dili
    </script>
</body>
</html>